import { Injectable } from '@nestjs/common';
import { CreateCatDto, UpdateCatDto } from './cats.controller';

export interface Cat {
  id: number;
  name: string;
}

@Injectable()
export class CatService {
  private readonly cats: Cat[] = [{ name: 'Tom', id: -1 }];

  async create(createCatDto: CreateCatDto) {
    this.cats.push(createCatDto);
  }

  async remove(id: number) {
    this.cats.splice(
      this.cats.indexOf(this.cats.find((cat) => cat.id === id)),
      1,
    );
  }

  async update(id, updateCatDto: UpdateCatDto) {
    if (updateCatDto.name) {
      this.cats.find((cat) => cat.id === id).name = updateCatDto.name;
    }
  }

  async findOne(id: number) {
    return this.cats.find((cat) => cat.id === id);
  }

  async findAll() {
    return JSON.stringify(this.cats);
  }
}
